package br.com.sge.controle;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.sge.dao.ProfessorDAO;
import br.com.sge.modelo.Professor;
@ManagedBean
@ViewScoped
public class ProfessorBean 
{
	private Professor professor;
	private List<Professor> listProf;
	private ProfessorDAO profDao = new ProfessorDAO();
	private boolean cadastrarSucesso = false;
	private boolean alterarSucesso = false;
	public ProfessorBean()
	{
		this.professor = new Professor();
	}
	public Professor getProfessor()
	{
		return this.professor;
	}
	
	public void getFiltrarProfessor()
	{
		if(professor.getIdProfessor()!= 0)
		{
			filtrarProfessorPorId();
		}
		else if(!professor.getNome().isEmpty()){
			filtrarProfessorPorNome();
		}
		
	}
	public void adicionarProfessor()
	{
		if(this.listProf == null)
		{
			this.listProf = new ArrayList<Professor>();
		}
		this.listProf.add(this.professor);
		this.professor = new Professor();
	}
	public Professor getFiltrarProfessorLogin()
	{
		this.professor = (Professor) profDao.buscarProfessor(professor.getLogin(),professor.getSenha()).getSingleResult();
		return this.professor;
	}
	public Professor filtrarProfessorPorId()
	{
		this.professor = (Professor) profDao.buscarProfessor(professor.getIdProfessor());
		return professor;
	}
	public List<Professor> filtrarProfessorPorNome()
	{
		this.listProf = (List<Professor>) profDao.buscarProfessores(this.professor.getNome(),this.professor.getOrdemPesquisa()).getResultList();
		return this.listProf;
	}
	public List<Professor> getListaProfessor(){
		
		return this.listProf;
	}
	public boolean getSalvar()
	{
		try
		{
			for(Professor prof : listProf)
			{
				profDao.salvarProfessor(prof);
			}
			this.cadastrarSucesso = true;
		}
		catch(RuntimeException e)
		{
			this.cadastrarSucesso = false;
			e.printStackTrace();
		}
		return this.cadastrarSucesso;
	}
	public boolean getAlterar()
	{
		try
		{
			profDao.alterarProfessor(professor);
			this.alterarSucesso = true;
		}
		catch(RuntimeException e)
		{
			e.printStackTrace();
		}
		return this.alterarSucesso;
	}

}
